Python de Lino Galiana, sous environnement SSP CloudNumpy, Pandas et GeoPandasGitPour programmer en Python on a besoin:
d’un exécutable Python (installé par défaut sur Linux et Mac), à installer sur Windows pour un environnement local.
d’un environnement de développement: IDE (VS Code, PyCharm, Spyder etc.)
d’un gestionnaire de modules (pip, conda)
Cet écosystème peut être local ou dans le cloud (Google Colab, SSP Cloud).
Dans le cadre du cours ==> écosystème cloud sous SSP Cloud avec IDE VS Code.
Note: En pratique on crée un environnement de développement local, avec un environnement virtuel: il s’agit d’un environnement de développement propre au projet, avec ses propres versions de modules, communiquées grâce au fichier requirements.txt.
Application: Créer une instance SSP Cloud:
-Se connecter sur le
Datalabdu SSP Cloud
- My Services / + New service
- Lancer un serviceVS Code
- Copier la clé de sécurité dans le presse-papier
- Créer un nouveau notebookjupyter
- Tester les commandes du TD
- Supprimer le service à la fin du TD!
Note: On ne revient pas ici sur les notions de base de programmation telles que les variables, fonctions, boucles, conditions. On se concentre sur les spécificités de Python par rapport aux autres langages.
li = [2, 3, 4] # liste de 3 éléments
print(f'1ère valeur: {li[0]}') # l'index commence à 0
li.append(5) # ajoute un élément
print(li)
li.extend([6, 7]) # ajoute une liste à la liste
print(li)
li.pop(4) # retire le 4ème élément de la liste (et non l'élément 4 de la liste!)
print(li)
# # boucle sur les éléments:
for el in li:
print(el)
# # boucle avec conservation des index:
for ix, el in enumerate(li):
print(f'index {ix}, valeur: {el}')
# # Comprehension lists:
li = [i for i in range(10) if i%2 == 0]En Python, seuls les types de base int, float et str ne sont pas mutables.
a = 2
b = a
b = 3
print(f'a: {a}, b: {b}') # le contenu de a n'a pas changé: une copie de a a été réalisée pour être alouée à b (idem si a est un float ou str)
li1 = [1, 2]
print(f'li1: {li1}')
li2 = li1
li2[0] = 0
print(f'li2: {li2}\nli1: {li1}') # le contenu de li1 a été modifié lorsque li2 a été modifié
# # Solution: créer une copie de l'objet mutable:
li3 = li1.copy()
li3[0] = 30
print(f'li3: {li3}\nli1: {li1}') # le contenu de li1 n'a pas été modifié lorsque li3 a été modifiéTODO
TODO
TODO
TODO